package com.ruoyi.coupons.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 所有优惠券对象 smart_coupon
 * 
 * @author ruoyi
 * @date 2025-03-25
 */
public class SmartCoupon extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 优惠券ID */
    private Long scCouponId;

    /** 优惠券名称 */
    @Excel(name = "优惠券名称")
    private String scCouponName;

    /** 优惠金额 */
    @Excel(name = "优惠金额")
    private BigDecimal scValue;

    /** 优惠券图片 */
    @Excel(name = "优惠券图片")
    private String scPhoto;

    /** 上下架状态 */
    @Excel(name = "上下架状态")
    private Long scListing;

    /** 优惠券使用的最低消费金额 */
    @Excel(name = "优惠券使用的最低消费金额")
    private BigDecimal scMinAmt;

    /** 优惠券开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "优惠券开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date scStartDt;

    /** 优惠券结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "优惠券结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date scEndDt;

    /** 优惠券发放限制数量 */
    @Excel(name = "优惠券发放限制数量")
    private Long scLimitNum;

    /** 优惠券已发放数量 */
    @Excel(name = "优惠券已发放数量")
    private Long scIssuedCnt;

    /** 优惠券有效天数 */
    @Excel(name = "优惠券有效天数")
    private Long scEffectiveDays;

    /** 优惠券失效时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "优惠券失效时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date scFailureTime;

    public void setScCouponId(Long scCouponId) 
    {
        this.scCouponId = scCouponId;
    }

    public Long getScCouponId() 
    {
        return scCouponId;
    }

    public void setScCouponName(String scCouponName) 
    {
        this.scCouponName = scCouponName;
    }

    public String getScCouponName() 
    {
        return scCouponName;
    }

    public void setScValue(BigDecimal scValue) 
    {
        this.scValue = scValue;
    }

    public BigDecimal getScValue() 
    {
        return scValue;
    }

    public void setScPhoto(String scPhoto) 
    {
        this.scPhoto = scPhoto;
    }

    public String getScPhoto() 
    {
        return scPhoto;
    }

    public void setScListing(Long scListing) 
    {
        this.scListing = scListing;
    }

    public Long getScListing() 
    {
        return scListing;
    }

    public void setScMinAmt(BigDecimal scMinAmt) 
    {
        this.scMinAmt = scMinAmt;
    }

    public BigDecimal getScMinAmt() 
    {
        return scMinAmt;
    }

    public void setScStartDt(Date scStartDt) 
    {
        this.scStartDt = scStartDt;
    }

    public Date getScStartDt() 
    {
        return scStartDt;
    }

    public void setScEndDt(Date scEndDt) 
    {
        this.scEndDt = scEndDt;
    }

    public Date getScEndDt() 
    {
        return scEndDt;
    }

    public void setScLimitNum(Long scLimitNum) 
    {
        this.scLimitNum = scLimitNum;
    }

    public Long getScLimitNum() 
    {
        return scLimitNum;
    }

    public void setScIssuedCnt(Long scIssuedCnt) 
    {
        this.scIssuedCnt = scIssuedCnt;
    }

    public Long getScIssuedCnt() 
    {
        return scIssuedCnt;
    }

    public void setScEffectiveDays(Long scEffectiveDays) 
    {
        this.scEffectiveDays = scEffectiveDays;
    }

    public Long getScEffectiveDays() 
    {
        return scEffectiveDays;
    }

    public void setScFailureTime(Date scFailureTime) 
    {
        this.scFailureTime = scFailureTime;
    }

    public Date getScFailureTime() 
    {
        return scFailureTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("scCouponId", getScCouponId())
            .append("scCouponName", getScCouponName())
            .append("scValue", getScValue())
            .append("scPhoto", getScPhoto())
            .append("scListing", getScListing())
            .append("scMinAmt", getScMinAmt())
            .append("scStartDt", getScStartDt())
            .append("scEndDt", getScEndDt())
            .append("scLimitNum", getScLimitNum())
            .append("scIssuedCnt", getScIssuedCnt())
            .append("scEffectiveDays", getScEffectiveDays())
            .append("scFailureTime", getScFailureTime())
            .toString();
    }
}
